﻿using System;

namespace GeoAPI.Geometries
{
	public interface ICoordinateSequence : ICloneable
	{
		int Dimension { get; }

		Ordinates Ordinates { get; }

		int Count { get; }

		Coordinate GetCoordinate(int i);

		Coordinate GetCoordinateCopy(int i);

		void GetCoordinate(int index, Coordinate coord);

		double GetX(int index);

		double GetY(int index);

		double GetOrdinate(int index, Ordinate ordinate);

		void SetOrdinate(int index, Ordinate ordinate, double value);

		Coordinate[] ToCoordinateArray();

		Envelope ExpandEnvelope(Envelope env);

		ICoordinateSequence Reversed();
	}
}
